//
//  main.m
//  KVC
//
//  Created by apple on 15/8/12.
//  Copyright (c) 2015年 戴维营. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
#if 0
        Student *stu = [[Student alloc] init];
        
        //通过一定的顺序查找对象中的实例变量并进行设置；
        
//       方法 （setBest） -> 实例变量 （_best -> best）
        [stu setValue:@23 forKey:@"age"];//  yi hang
        
        NSLog(@"%@",[stu valueForKey:@"age"]);
    
        [stu setValue:@"小咪" forKeyPath:@"name"];// er hang 这两行为什么下面这个要多一个Path  ??
     
        //通过一定的循序查找对象中的geter或变量，并获取他们的值；
        
       // 方法 （best -> isBest）-> 实例变量（_best -> best）
        NSLog(@"%@",[stu valueForKeyPath:@"name"]);
#endif

#if 1
        //结合kvc和点标记可以形成keyPath，用于访问数据；
        Student *stu = [Student new];
        Dog *dog = [Dog new];
        NSLog(@"dog:%p",dog);
        
        NSLog(@"stu.dog:%p",stu.dog);
        [stu setValue:dog forKey:@"dog"];
        [stu.dog setValue:@"block" forKeyPath:@"color"];
//        [stu setValue:[Dog new] forKey:@"dog"];
//        [stu setValue:@"block" forKeyPath:@"dog.color"];
        NSLog(@"%@",[stu valueForKeyPath:@"dog.color"]);
        
#endif
#if 1
        
#endif
    }
    return 0;
}
